﻿using System;
using System.Data;
using System.Windows.Forms;
using DBConnect;

namespace TISS_Add_in
{
    public partial class uc_CriarLogin : UserControl
    {
        private Int64 IDPrestador;
        private bool isNewLogin = true;

        public uc_CriarLogin(long id)
        {
            InitializeComponent();
            IDPrestador = id;
            txtConfirmarSenha.Visible = false;
            lblConfirmaSenha.Visible = false;
            lblSenha.Text = "Senha";
            lblConfSenha.Visible = true;
            lblConfSenha.Text = "Confirmar Senha";
        }

        public uc_CriarLogin(string usuario, long id)
        {
            InitializeComponent();
            IDPrestador = id;
            this.isNewLogin = false;
            txtLogin.Text = usuario;
            lblSenha.Text = "Senha Antiga";
            lblConfSenha.Visible = true;
            lblConfSenha.Text = "Nova Senha";
            txtConfirmarSenha.Visible = true;
            lblConfirmaSenha.Visible = true;
            lblConfirmaSenha.Text = "Confirmar Nova Senha";
        }

        private void btnCadastroLogin_Click(object sender, EventArgs e)
        {
            if (txtLogin.Text == "")
                MessageBox.Show(txtLogin, "Usuário obrigatório!", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else if (txtConfSenha.Text == "")
                MessageBox.Show(txtSenha, "Senha obrigatória!", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else if (this.isNewLogin)
            {
                if (txtSenha.Text == txtConfSenha.Text)
                {
                    DataTable dt = CommandModConf.verificaLogin(null, txtLogin.Text, null);
                    if (dt.Rows.Count == 0)
                    {
                        string senhaHash = AddinUtils.CalculateMD5Hash(txtSenha.Text);
                        CommandModConf.cadastroLogin(IDPrestador, txtLogin.Text, senhaHash);
                        MessageBox.Show(btnCadastroLogin, "Login Cadastrado!");
                        Globals.ThisAddIn.CustomTaskPanes.Remove(Globals.ThisAddIn.CriarLoginCTP);
                    }
                    else
                        MessageBox.Show(txtSenha, "Usuário já existente!\nPor favor, tente outro nome de usuário.", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                    MessageBox.Show(txtSenha, "Confirmação de Senha errada!", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (txtConfSenha.Text == txtConfirmarSenha.Text)
                {
                    string senhaAntigaHash = AddinUtils.CalculateMD5Hash(txtSenha.Text);
                    DataTable dt = CommandModConf.verificaLogin(this.IDPrestador, txtLogin.Text, senhaAntigaHash);                    
                    string senhaHash = AddinUtils.CalculateMD5Hash(txtConfSenha.Text);
                    if (dt.Rows.Count != 0) 
                    {
                        CommandModConf.updateLogin(this.IDPrestador, txtLogin.Text, senhaHash);
                        MessageBox.Show(btnCadastroLogin, "Login Cadastrado!");
                        Globals.ThisAddIn.CustomTaskPanes.Remove(Globals.ThisAddIn.CriarLoginCTP);
                    }
                    else
                        MessageBox.Show(txtSenha, "Usuário e/ou Senha Antiga Incorreta!", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                    MessageBox.Show(txtConfSenha, "Confirmação de Senha errada!", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancelarLogin_Click(object sender, EventArgs e)
        {
            Globals.ThisAddIn.CustomTaskPanes.Remove(Globals.ThisAddIn.CriarLoginCTP);
        }

        
    }
}
